import java.util.LinkedList;
import java.util.Queue;

/**
 * 104. 二叉树的最大深度
 *
 * 给定一个二叉树，找出其最大深度。
 *
 * 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
 *
 * 说明: 叶子节点是指没有子节点的节点。
 *
 * 示例：
 * 给定二叉树 [3,9,20,null,null,15,7]，
 *
 *     3
 *    / \
 *   9  20
 *     /  \
 *    15   7
 *
 * 返回它的最大深度 3 。
 */
public class Solution_104 {
//    public int maxDepth(mapNode root) {
//        if (root == null) return 0;
//
//        Queue<mapNode> queue = new LinkedList();
//        int level = 0;
//        //一开始只有根节点
//        int rowSize = 1;
//        mapNode temp = null;
//        queue.offer(root);
//        while (!queue.isEmpty()) {
//            temp = queue.poll();
//            rowSize--;
//            if (temp.left != null) queue.offer(temp.left);
//            if (temp.right != null) queue.offer(temp.right);
//
//            //当前行遍历完之后，层出加一，更新下一行的节点数
//            if (rowSize == 0) {
//                level++;
//                rowSize = queue.size();
//            }
//        }
//        return level;
//        return height(root);
//    }

    /**
     * 递归方法
     */
//    private int height(mapNode node) {
//        if (node == null) return 0;
//        return 1 + Math.max(height(node.left),height(node.right));
//    }
}
